#ifndef _THREAD_H
#define _THREAD_H
#include <pthread.h>
#include <functional>
using ThreadCallback = std::function<void()>;
class Thread
{
public:
  // 参数为右值引用,表示要绑定右值
  Thread(ThreadCallback &&cb);
  ~Thread() {}

  void start(); // 启动一个子线程
  void join();  // 等待一个子线程运行结束

private:
  // 子线程入口函数
  static void *start_routine(void *);

private:
  pthread_t _pthid; // 线程id
  bool _isRunning;  // 线程的状态是否在运行
  ThreadCallback _cb;
};

#endif
